A Characterization of Prolog Execution

نویسنده

  • Mark A. Friedman
چکیده

We analyze the execution of a new suite of medium-sized and realistic benchmarks through simulations on ageneral-purpose, register-oriented architecture at the abstract machine and architectural levels to identify the mostcritical characteristics of Prolog for efficient execution. We propose improvements through modest enhancements tothe architecture and to the Warren abstract machine to add significant support for the identified issues. Architecturalsupport for tag-handling operations through an architecture which distinguishes between the tag and value fields ofan object leads to a twelve percent decrease in static code and a seven percent decrease in executed instructions.The addition of orthogonal tag instructions reduces code size by an additional nine percent and reduces dynamic in-structions by eleven percent. The introduction of push and pop instructions decreases code size by seven percentand the number of instructions executed by eight percent. Static code is reduced by forty percent and the number ofinstructions executed decreases by nine percent by utilizing procedure argument mode information at compile timewithin compiled unification operations. Knowledge of dereferencing characteristics reduces static code by six per-cent and reduces instructions executed by six percent by eliminating dereferencing for objects which are directly ref-erenced and when previously dereferenced values may be substituted for non-dereferenced objects. Optimization ofarithmetic expression evaluation eliminates six percent of the executed instructions which create arithmetic expres-sions and eliminates seven percent of the executed instructions which evaluate these structures and decreases thestatic code size by ten percent. A modified WAM-database execution model is proposed which reduces static codeby twenty percent with a modest four percent increase in executed instructions. We find Prolog to attain only mod-est speedups through simple pipelined and multiple-operation-issue machine implementations and propose new di-rections to explore to allow Prolog to better exploit the increasing levels of instruction-level parallelism attainable inmodern architectures.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

DISPO: Distributed Multi-Threaded Execution of Prolog Programs

DISPO is a Distributed Prolog Virtual Machine for interpreting and executing Prolog programs through distribution and multi-threading. It is a distributed version of a standard Prolog interpreter designed for exploiting OR-parallelism and pipe-lined AND parallelism. Some distinctive features of DISPO is that it speeds up the execution of Prolog programs and generates all possible solutions for ...

متن کامل

Prolog Visualization System Using Logichart Diagrams

We have developed a Prolog visualization system that is intended to support Prolog programming education. The system uses Logichart diagrams to visualize Prolog programs. The Logichart diagram is designed to visualize the Prolog execution flow intelligibly and to enable users to easily correlate the Prolog clauses with its parts. The system has the following functions. (1) It visually traces Pr...

متن کامل

Concolic Execution and Test Case Generation in Prolog

Symbolic execution extends concrete execution by allowing symbolic input data and then exploring all feasible execution paths. It has been defined and used in the context of many different programming languages and paradigms. A symbolic execution engine is at the heart of many program analysis and transformation techniques, like partial evaluation, test case generation or model checking, to nam...

متن کامل

Specifying Prolog Trace Models with a Continuation Semantics

Byrd's box model is a ne grained Prolog execution model that can be the basis of high level debugging tools. In this article, we provide a formal speciication of Byrd's box model, based on an already existing operational and denotational continuation semantics for Pro-log with cut. We show how this speciication can be extended to specify richer Prolog trace models. To be able to experiment with...

متن کامل

Partial Evaluation in Prolog: Some Improvements about Cut

Two main aspects of Partial Evaluation for Prolog programs are considered: treatment of cuts and control of recursion. The analysis about cut is exhaustive: we consider occurrences of cut within both conjunctions and disjunctions. We show which restrictions are necessary to safely deal with cut in Partial Evaluation and which transformations are allowed. We define a set of conditions for compil...

متن کامل

Interim report on the Visualisation of Prolog execution in three dimensions

ABSTRACT A simple, expressively complete, prototype system is presented for visual programming in Prolog, and for the complete visualisation of the execution of Prolog programs in three spatial dimensions. The first part of this system, known as VPP (short for Visual Programming in Prolog) enables users to edit and create Prolog programs graphically by manipulating and connecting graphical symb...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1992